#include<stdio.h>
#include "linklist"
void Split(LinkNode *&L)
{
	LinkNode *pre,*p;
	if(L->next == NULL || L->next->next == NULL)
		return;
	int x = L->next->data; // 将首节点赋给x
	pre = L->next;
	p = pre->next;
	while(p!=NULL)
	{
		if(p->data < x)
		{
			pre->next = p->next;
			p->next = L->next; // 将节点p插到表头 
			L->next = p;
			p = pre->next;
		}
		else
		{
			pre = p; // p,pre同步后移 
			p= pre->next;
		}
	 } 
}
int main()
{
	LinkNode *L;
	ElemType a[] = {23,41,2,15,12,90,66,9};
	int n = sizeof(a)/sizeof(int); // 求整型数组的长度 
	CreateListR(L,a,n); // 创建链表 
	printf("L: "); DispList(L);
	printf("以首节点进行划分\n");
	Split(L);
	printf("L: "); DispList(L);
	DestroyList(L); // 销毁链表 
	return 0; 
 } 
